package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * 集合 java.util.Collection
 * Collection是一个接口，定义了集合的相关操作。
 * 集合与数组相似，可以保存一组数据，集合提供了多种不同数据结构的实现可供选择。
 *
 * Collection下有两个常见的子类别:
 * java.util.List:可重复且有序的集合
 * java.util.Set:不可重复且大部分实现是无序的
 * 是否重复是依靠元素自身equals比较的。
 */
public class CollectionDemo1 {
    public static void main(String[] args) {
//        Collection c = new ArrayList();
        Collection c = new HashSet();
        /*
            boolean add(E e)
            向集合中添加一个元素，元素成功添加后则返回true

            E是泛型，先当作Object看待。
            集合只能保存引用类型元素
         */
        boolean success = c.add("one");
        System.out.println("是否存放成功:"+success);
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
        success = c.add("one");//对于Set集合而言，重复的元素不能放进去第二次
        System.out.println("是否存放成功:"+success);
//        c.add(1);//触发编译器自动装箱，代码改为:c.add(Integer.valueOf(1));
        System.out.println(c);
        /*
            int size()
            返回当前集合的元素个数
         */
        int size = c.size();
        System.out.println("size:"+size);
        /*
            boolean isEmpty()
            判断当前集合是否为空集(不包含元素)
         */
        boolean isEmpty = c.isEmpty();
        System.out.println("isEmpty:"+isEmpty);
        /*
            void clear()
            清空当前集合
         */
        c.clear();
        System.out.println(c);
        System.out.println("size:"+c.size());
        System.out.println("isEmpty:"+c.isEmpty());

    }
}
